Version 2.2 (PR399) release notes: The first official release of the new sequence diagram editor. See Problem Report list for more information, in it there is a small explanation on how to use the new sequence diagram editor. Version 2.1 (PR394) release notes: See Problem Report list for more information. Version 2.1 (PR385) release notes: See Problem Report list for more information. Version 2.1 (PR378) release notes: This is a test release, a few problems have been fixed. See Problem Report list for more information. Version 2.1 (PR369) release notes: This is a test release it includes major changes. There is a new sequence diagram editor!! Further the documentation generation is altered now there are meta groups. See the problem report list for more information, also there is a small explanation on how to use the new sequence diagram editor. Version 2.1 (PR353) release notes: See Problem Report list Version 2.1 (PR348) release notes: Added new feature, to allow the definition and assignment of context. With this feature it is possible to have conditional members, methods etc (see PR346). For the other changes, see Problem Report list. Version 2.1 (PR343) release notes: See Problem Report list Version 2.1 (PR340) release notes: See Problem Report list Version 2.1 (PR334) release notes: See Problem Report list Version 2.1 (PR331) release notes: New feature Phase support added. It is now possible for some nodes in the tree (e.g. classes, methods, members) to show the phase they are in. This phase is represented in a state icon before the normal icon. The phase can be altered manually, but in certain circumstances it is updated automatically. For example if a method is in Phase Test or Complete and its code is altered, it will go back to the Implementation Phase. Adding or removing members will effect constructors in the Test or Complete Phase, they go back to Implementation. These changes can ripple through upwards, so you get a very fast overview of where work is needed. This new feature is not on by default, to keep things compatible with previous versions. It can be enabled in the DataModel dialog. Version 2.0a PR326 release notes: Changes with the previous released version are: Some small bug fixes, plus and dependencies are now supported in class diagrams. Further dotted and dashed lines are drawn natively, instead of using line styles, so those lines should come out of the printer properly independent of the printer. Version 2.0a PR319 release notes: Changes with the previous released version are: New feature (PR317) to allowed the drawing of relations between external classes, this feature makes it also possible to have relations without code generation. Better update of code on type name changes (PR315, PR316 and PR318). Various little bug fixes, most important are the ones related with undo/redo (PR311, PR312). Version 2.0a PR309 release notes: The include files and thus also the precompiled version of the include file have been changed. Several (Get) methods have become const (see PR294), this can have influnce on existing code. It is possible that non const methods used as filter method in an iterator will not compile any longer. The solution is simple, just make those methods used as filter method const. Another thing that can co wrong, but will compile is the following situation: class Base; class Derived; class Owner; Base <+---- Derived // Derived is inherited from Base Owner <>---->> Derived // A one to many relation between Owner and Derived The previous versions of ClassBuilder generates the following navigation method: Owner* Derived::GetOwner() The new version of ClassBuilder generates the following navigation method: Owner* Derived::GetOwner() const This is only a slight difference which will normally not effect the working of existing code. If however the following definition is made at class Base: virtual Owner* Base::GetOwner() then the existing code can behave differently. Since the signature has changed, the navigation method: Owner* Derived::GetOwner() const will not be virtual any longer. So every call to GetOwner on a pointer to a Base object will be handled by method: Base::GetOwner, even if the object is actually a Derived object. The solution is simple, make the virtual method at class Base also const: virtual Owner* Base::GetOwner() const So check your code on this construct if you want to upgrade. ClassBuilder is an Object Oriented front end to your C++ compiler, running on Win95/98/NT. It lets you create, manipulate and navigate classes, class relations, class members and class methods at a high level of abstraction trough a graphical user interface. Its rich feature list includes: - Class diagram editing (UML), with automatic layout. - Code generation to implement associations/aggregations, with navigation methods and iterators. - Generation of Find methods on one to many associations/aggregations and Get/Set methods on members. - Wizards to insert iteration loops and navigation paths into the code of methods. - Code synchronisation with compile environment, changes made outside ClassBuilder are noticed and read back. - When used together with MFC, code can be generated to serialise the data structure. - Drag and drop support for: Adding a member to a class, adding arguments, changing the order of arguments, etc. - Documentation generation in RTF and HTML, so the documentation is always in phase with the code. - Changes made in the generated RTF documentation can be read back into ClassBuilder. This version may be freely distributed as is, without modification. The program is fully functional, there are no limitations. The author (Jimmy Venema) can be contacted via e-mail at jimmy.venema@hetnet.nl or by phone at +31 40 2736839 (work), +31 492 549818 (home). This release consists of the following files: README.TXT This file. ClassBuilder.exe The executable, run this program, to start. ClassBuilder Problem Report List.doc A list with problem reports. Template.rtf Template Rich Text Format file to use as template for the documentation is RTF format. It is used to derive the different styles which can be used, like heading1, heading2, ... etc. And as first part of the generated document. Include\CB_CriticalMulti.h Include\CB_CriticalMultiOwned.h Include\CB_CriticalSection.h Include\CB_CriticalSingle.h Include\CB_CriticalSingleOwned.h Include\CB_CriticalStaticMulti.h Include\CB_CriticalStaticMultiOwned.h Include\CB_CriticalUniqueValueTree.h Include\CB_CriticalUniqueValueTreeOwned.h Include\CB_CriticalValueTree.h Include\CB_CriticalValueTreeOwned.h Include\CB_IteratorMulti.h Include\CB_IteratorStaticMulti.h Include\CB_Multi.h Include\CB_MultiOwned.h Include\CB_Single.h Include\CB_SingleOwned.h Include\CB_StaticMulti.h Include\CB_StaticMultiOwned.h Include\CB_UniqueValueTree.h Include\CB_UniqueValueTreeOwned.h Include\CB_ValueTree.h Include\CB_ValueTreeOwned.h Include files needed to compile the generated code. Include\CB_CompiledMacros.CBH Precompiled version of above headers files, so macro's can be expanded.